<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="zh" xml:lang="zh" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<head>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Concept: 工作空间</title>
<meta name="uma.type" content="Concept">
<meta name="uma.name" content="workspaces">
<meta name="uma.presentationName" content="工作空间">
<meta name="element_type" content="concept">
<meta name="filetype" content="description">
<meta name="role" content="">
<link rel="StyleSheet" href="./../../../css/default.css" type="text/css">
<script src="./../../../scripts/ContentPageResource.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageSubSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageToolbar.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/contentPage.js" type="text/javascript" language="JavaScript"></script><script type="text/javascript" language="JavaScript">
					var backPath = './../../../';
					var imgPath = './../../../images/';
					var nodeInfo=null;
					contentPage.preload(imgPath, backPath, nodeInfo,  '', false, false, false);
				</script>
</head>
<body>
<div id="breadcrumbs"></div>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td valign="top"><a name="Top"></a>
<div id="page-guid" value="3.4400958589714374E-305"></div>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr>
<td class="pageTitle" nowrap="true">Concept: 工作空间</td><td width="100%">
<div align="right" id="contentPageToolbar"></div>
</td><td width="100%" class="expandCollapseLink" align="right"><a name="mainIndex" href="./../../../index.htm"></a><script language="JavaScript" type="text/javascript" src="./../../../scripts/treebrowser.js"></script></td>
</tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="pageTitleSeparator"><img src="./../../../images/shim.gif" alt="" title="" height="1"></td>
</tr>
</table>
<div class="overview">
<table width="97%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="50"><img src="./../../../images/concept.gif" alt="" title=""></td><td>
<table class="overviewTable" border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top">工作空间是一种专用区域，它所包含的代码是开发人员在与其他开发人员相对隔离的情况下，根据项目所采用的标准来编写和测试的代码。</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Relationships</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<th class="sectionTableHeading" scope="row">Related Elements</th><td class="sectionTableCell">
<ul>
<li>
<a href="./../../../rup/workproducts/rup_workspace_C8AE02BF.html" guid="{227398F1-D995-4527-8C4F-292024EFDD96}">工作空间</a>
</li>
<li>
<a href="./../../../rup/disciplines/rup_config_and_change_manage_discipline_CC612E7A.html" guid="_yeA1xNnmEdmO6L4XMImrsA">配置与变更管理</a>
</li>
<li>
<a href="./../../../rup/domains/configuration_ _change_management_121DC50A.html" guid="_wgltAP_IEdmAzesbYywanQ">配置与变更管理</a>
</li>
</ul>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Main Description</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td class="sectionTableSingleCell"><a id="Top" name="Top"></a>
<h3>
    <a id="Definition" name="Definition">定义</a><a key="工作空间（workspaces）" text="定义" name="XE_workspaces__definition" id="XE_workspaces__definition" class="index"></a>
</h3>
<p>
    工作空间指的是这样的“专用”区域：开发人员可以根据项目所采用的标准来实现和测试代码，与其他开发人员相对隔离。配置管理员需要为项目的每个开发人员创建一个工作空间环境。
</p>
<h3>
    <a id="Explanation" name="Explanation">说明</a>
</h3>
<p>
    工作空间为每个开发人员提供一个一致、灵活、经济且可重现的环境，该环境选择和展示每个文件的适当版本。工作空间需要能够同时对共享和隔离进行细粒度控制。这是必需的，因为在大多数项目中，开发人员需要与其他人所作的变更保持隔离；但与此同时，他们又必须能够将自己的变更与其他某些开发人员所作的变更共同进行单元测试.
</p>
<p>
    在对较旧发行版执行维护时，开发人员需要能够查看较旧的版本、二进制文件、文档、测试、工具和其他对象。在此情况下，工作空间充当着“时间机器”，使环境中的所有事物（不仅是源代码）都能以其原来的样子出现。
</p>
<p>
    每个开发人员的工作空间需要进行隔离，以便编辑、编译、测试和调试。然而，工作空间的隔离应该是相对的，而非绝对的：
</p>
<ul>
    <li>
        其他人应能够跟踪开发人员的工作，并选择性地将之集成到他们自己的工作中。
    </li>
    <li>
        在下一个集成期到来之前，其他人员应该能够拒绝那些可能会使他们自己的工作变得不稳定的变更。
    </li>
</ul>
<p>
    工作空间可以是个别开发人员完全私有的，也可以是通过网络在开发人员团队之间共享的。
</p>
<p>
    除了提供对源版本的访问之外，工作空间需要为软件开发期间生成的文件提供专有（隔离）的存储区域：
</p>
<ul>
    <li>
        源文件的工作（已检出）版本
    </li>
    <li>
        可执行文件
    </li>
    <li>
        其他工作空间私有对象 － 源代码、测试子目录和测试数据文件。
    </li>
</ul>
<p>
    工作空间的专有存储区域通常位于开发人员在工作站上的主目录中。由一组开发人员共享的工作空间可能在中央文件服务器上有其自己专有的存储区域。不过，专有存储区域的实际位置基本上是无关的。从开发人员的角度来看，工作空间的专用存储区域看上去应当是完全集成的。
</p>
<p align="center">
    <img src="./../../../rup/guidances/concepts/resources/co_wrksp.gif" width="434" height="311" alt="图中显示了 2 个集成工作空间和 1 个专用工作空间，叠加在 CM 模块上。" />
</p>
<p class="picturetext">
    上图说明了在 CM 模块的整体环境中的专有和集成工作空间的概念。
</p>
<h3>
    <a id="WorkingConfigurations" name="WorkingConfigurations">工作配置</a><a key="工作配置（working configurations）" name="XE_working_configurations" id="XE_working_configurations" class="index"></a><a key="工作空间（workspaces）" text="工作配置" name="XE_workspaces__working_configurations" id="XE_workspaces__working_configurations" class="index"></a>
</h3>
<p>
    工作配置（工作空间概要文件）指的是构成项目的<b>工作集</b>的特定子系统。工作集是为实现一件工作所必须引用或修改的子系统的特定<b>版本</b>的列表。该列表可以代表整个系统或某个子集。
</p>
<h3>
    <a id="Views" name="Views">视图</a>
</h3>
<p>
    视图提供对项目存储库中某个文件集的访问。视图还提供对这些文件的相应版本集合的访问：
</p>
<ul>
    <li>
        新开发视图可以提供对文件的最新版本的访问。
    </li>
    <li>
        另一种新开发视图可以提供对正由某个团队（该团队正在处理产品的新用户界面）使用的版本的访问。
    </li>
    <li>
        维护视图可以提供对曾用于构建产品给定发行版的文件版本的访问。
    </li>
</ul>
<p>
    工作空间（有时也称为视图）允许开发人员先独自作出并测试变更，然后再与团队其他人员共享这些修改。共有两种视图：
</p>
<ul>
    <li>
        快照视图
    </li>
    <li>
        动态视图
    </li>
</ul>
<p>
    <i>快照视图</i>为开发人员提供了稳定不变的工作环境。它与计算机目录树相似。用一个或多个项目存储库中的文件的相应版本的副本来填充快照视图。有些人对此类目录树使用术语“沙箱”。当某个开发人员希望看到其他团队成员所作的变更时，她可更新她的视图。此工作风格具有<b>拉伸</b>模型的特征，原因是它需要主动拉入相关信息，而不是通过自动刷新机制即时获得信息。
</p>
<p>
    <i>动态视图</i>是一种虚拟数据结构，因为它看上去包含了所有开发数据。动态视图不制作文件的本地副本，而是依赖于网络即时更新。动态视图可能是以下情况的最佳选择：
</p>
<ul>
    <li>
        客户端的磁盘空间有限
    </li>
    <li>
        您希望利用所提供的对象共享
    </li>
    <li>
        开发团队必须处理代码的最新版本。对于需要任何给定软件的最新版本的集成而言，此功能尤为有用。
    </li>
</ul><br />
<br /></td>
</tr>
</table>
</div>
<table class="copyright" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="copyright">Copyright &copy; 2008 版权所有 东软集团股份有限公司&nbsp; 联系邮箱:<a href="mailto:tcoe@neusoft.com">tcoe@neusoft.com</a></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
<script type="text/javascript" language="JavaScript">
				contentPage.onload();
			</script>
</html>
